// 获取唯一id
const guid = (len = 32, firstU = false, radix = null, isNumber = false) => {
	// abcdefghijklmnopqrstuvwxyz
	let chars = isNumber ? '0123456789'.split('') : '0123456789abcdef'.split('');
	let uuid = [];
	radix = radix || chars.length;
	if (len) {
		// 如果指定uuid长度,只是取随机的字符,0|x为位运算,能去掉x的小数位,返回整数位
		for (let i = 0; i < len; i++) uuid[i] = chars[0 | Math.random() * radix];
	} else {
		let r;
		// rfc4122标准要求返回的uuid中,某些位为固定的字符
		uuid[8] = uuid[13] = uuid[18] = uuid[23] = '-';
		uuid[14] = '4';
		for (let i = 0; i < 36; i++) {
			if (!uuid[i]) {
				r = 0 | Math.random() * 16;
				uuid[i] = chars[(i == 19) ? (r & 0x3) | 0x8 : r];
			}
		}
	}
	// 移除第一个字符,并用u替代,因为第一个字符为数值时,该guuid不能用作id或者class
	if (firstU) {
		uuid.shift();
		return 'u' + uuid.join('');
	} else if (uuid[0] == 0) { //如果第一个数字为0，则使用1代替
		uuid.shift();
		return '1' + uuid.join('');
	} else {
		return uuid.join('');
	}
}
/**
 * 获取字符串中的链接地址
 * @param { String } str 字符串
 */
const getHttpStr = str => {
	const reg = /(https?|http|ftp|file):\/\/[-A-Za-z0-9+&@#/%?=~_|!:,.;]+[-A-Za-z0-9+&@#/%=~_|]/g;
	const s = str.match(reg);
	return (s && s.length ? s[0] : null);
}
/**
 * @description 取一个区间数
 * @param {Number} min 最小值
 * @param {Number} max 最大值
 */
function random(min, max) {
	if (min >= 0 && max > 0 && max >= min) {
		const gab = max - min + 1
		return Math.floor(Math.random() * gab + min)
	}
	return 0
}
module.exports = {
	guid,
	random
}